package cn.teduymdj.jxc.mapper;

import cn.teduymdj.jxc.pojo.entity.Unit;
import cn.teduymdj.jxc.pojo.vo.UnitListItemVO;
import cn.teduymdj.jxc.pojo.vo.UnitStandardVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 单位的mapper层
 * 李柯辰
 */
@Repository
public interface UnitMapper {
    /**
     * 插入单位数据
     *
     * @param unit 单位数据
     * @return 受影响的行数
     */
    int insert(Unit unit);

    /**
     * 批量插入单位数据
     *
     * @param units 客户列表
     * @return 受影响的行数
     */
    int insertBatch(List<Unit> units);
    /**
     * 根据id删除单位数据
     *
     * @param id 单位id
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据若干个id批量删除单位数据
     *
     * @param ids 若干个客户id的数组
     * @return 受影响的行数
     */
    int deleteByIds(Long[] ids);

    /**
     * 根据id修改单位数据
     *
     * @param unit 封装了单位id和新数据的对象
     * @return 受影响的行数
     */
    int update(Unit unit);

    /**
     * 统计单位表中的数据的数量
     *
     * @return 单位表中的数据的数量
     */
    int count();

    /**
     * 根据单位名称统计数据的数量
     *
     * @param name 单位名称
     * @return 匹配名称的单位数据的数量
     */
    int countByName(String name);

    /**
     * 根据id查询单位详情
     *
     * @param id 单位id
     * @return 匹配的单位详情，如果没有匹配的数据，则返回null
     */
    UnitStandardVO getStandardById(Long id);

    /**
     * 查询客户列表
     *
     * @return 客户列表
     */
    List<UnitListItemVO> list();
}
